home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / dev / lang / amigatalk.lha / intuition / Menu.st < prev    next >
Text File  |  2002-01-14  |  6KB  |  260 lines

  1. "---------------------------------------------------"
  2. " Menu Class implements control of Amiga Menus      "
  3. " except for actually displaying it, which is in the"
  4. " Window class.                                     "
  5. "---------------------------------------------------"
  6.  
  7. Class Menu :Glyph
  8.    private nextMenu leftEdge topEdge width height flags menuName firstItem
  9. !
  10. [
  11.    getMenu
  12.       ^ private
  13. |
  14.    getStartPoint
  15.       leftEdge <- <primitive 182 2 0 0 private>.
  16.       topEdge  <- <primitive 182 2 1 0 private>.
  17.       ^ leftEdge @ topEdge
  18. |
  19.    getMenuSize
  20.       width  <- <primitive 182 2 2 0 private>.
  21.       height <- <primitive 182 2 3 0 private>.
  22.       ^ width @ height
  23. |
  24.    setStartPoint: newPoint ! x y !
  25.       x <- newPoint x.
  26.       y <- newPoint y.
  27.       <primitive 182 3 0 x 0 private>.      
  28.       <primitive 182 3 1 y 0 private>.
  29.       leftEdge <- x.
  30.       topEdge  <- y
  31. |
  32.    setMenuSize: sizePoint ! w h !
  33.       w <- sizePoint x.
  34.       h <- sizePoint y.
  35.       <primitive 182 3 2 w 0 private>.
  36.       <primitive 182 3 3 h 0 private>.
  37.       width  <- w.
  38.       height <- h
  39. |
  40.    dispose
  41.       <primitive 182 0 0 private>.
  42.       ^ nil
  43. |
  44.    getFlags
  45.       ^ flags <- <primitive 182 2 4 0 private>
  46. |
  47.    setFlags: newFlags
  48.       <primitive 182 3 4 newFlags 0 private>.
  49.       flags <- newFlags
  50. |
  51.    getNextMenu
  52.       ^ nextMenu <- <primitive 182 2 8 0 private>
  53. |
  54.    setNextMenu: newNextMenu
  55.       <primitive 182 3 8 newNextMenu 0 private>.
  56.       nextMenu <- newNextMenu
  57. |
  58.    getFirstItem
  59.       ^ firstItem <- <primitive 182 2 9 0 private>
  60. |
  61.    setFirstItem: newFirstItem
  62.       <primitive 182 3 9 newFirstItem 0 private>.
  63.       firstItem <- newFirstItem
  64. |
  65.    getMenuName
  66.       ^ menuName <- <primitive 182 2 13 0 private>
  67. |
  68.    setMenuName: newMenuName
  69.       <primitive 182 3 13 newMenuName 0 private>.
  70.       menuName <- newMenuName
  71. |
  72.    new: newMenuName
  73.       private  <- <primitive 182 1 0 newMenuName>.
  74.       menuName <- newMenuName.
  75.       ^ self
  76. ]
  77.  
  78. Class MenuItem :Menu
  79.    private    nextItem      leftEdge topEdge    width    height 
  80.    flags      mutualExclude itemFill selectFill command  subItem 
  81.    nextSelect itemName
  82. !
  83. [
  84.    getMenuItem
  85.       ^ private
  86. |
  87.    dispose
  88.       <primitive 182 0 1 private>.
  89.       ^ nil
  90. |
  91.    getStartPoint
  92.       leftEdge <- <primitive 182 2 0 1 private>.
  93.       topEdge  <- <primitive 182 2 1 1 private>.
  94.       ^ leftEdge @ topEdge
  95. |
  96.    getItemSize
  97.       width  <- <primitive 182 2 2 1 private>.
  98.       height <- <primitive 182 2 3 1 private>.
  99.       ^ width @ height
  100. |
  101.    setStartPoint: newPoint ! x y !
  102.       x <- newPoint x.
  103.       y <- newPoint y.
  104.       <primitive 182 3 0 x 1 private>.
  105.       <primitive 182 3 1 y 1 private>.
  106.       leftEdge <- x.
  107.       topEdge  <- y
  108. |
  109.    setItemSize: sizePoint ! w h !
  110.       w <- sizePoint x.
  111.       h <- sizePoint y.
  112.       <primitive 182 3 2 w 1 private>.
  113.       <primitive 182 3 3 h 1 private>.
  114.       width  <- w.
  115.       height <- h
  116. |
  117.    getFlags
  118.       ^ flags <- <primitive 182 2 4 1 private>
  119. |
  120.    setFlags: newFlags
  121.       <primitive 182 3 4 newFlags 1 private>.
  122.       flags <- newFlags
  123. |
  124.    getMutualExclude
  125.       ^ mutualExclude <- <primitive 182 2 5 1 private>
  126. |
  127.    setMutualExclude: newMutualExclude
  128.       <primitive 182 3 5 newMutualExclude 1 private>.
  129.       mutualExclude <- newMutualExclude
  130. |
  131.    getCommand
  132.       ^ command <- <primitive 182 2 6 1 private>
  133. |
  134.    setCommand: newCommand
  135.       <primitive 182 3 6 newCommand 1 private>.
  136.       command <- newCommand
  137. |
  138.    getNextItem
  139.       ^ nextItem <- <primitive 182 2 7 1 private>
  140. |
  141.    setNextItem: newNextItem
  142.       <primitive 182 3 7 newNextItem 1 private>.
  143.       nextItem <- newNextItem
  144. |
  145.    getItemFill
  146.       ^ itemFill <- <primitive 182 2 10 1 private>
  147. |
  148.    setItemFill: newItemFill
  149.       <primitive 182 3 10 newItemFill 1 private>.
  150.       itemFill <- newItemFill
  151. |
  152.    getSelectFill
  153.       ^ selectFill <- <primitive 182 2 11 1 private>
  154. |
  155.    setSelectFill: newSelectFill
  156.       <primitive 182 3 11 newSelectFill 1 private>.
  157.       selectFill <- newSelectFill
  158. |
  159.    getSubItem
  160.       ^ subItem <- <primitive 182 2 12 1 private>
  161. |
  162.    setSubItem: newSubItem
  163.       <primitive 182 3 12 newSubItem 1 private>.
  164.       subItem <- newSubItem
  165. |
  166.    new: newItemName
  167.       private  <- <primitive 182 1 1 newItemName>.
  168.       itemName <- newItemName.
  169.       ^ self
  170. ]
  171.  
  172. Class SubItem :MenuItem
  173.    private       nextItem leftEdge   topEdge width      height      flags 
  174.    mutualExclude itemFill selectFill command nextSelect subItemName
  175. !
  176. [
  177.    getSubItem
  178.       ^ private
  179. |
  180.    dispose
  181.       <primitive 182 0 2 private>.
  182.       ^ nil
  183. |
  184.    getStartPoint
  185.       leftEdge <- <primitive 182 2 0 2 private>.
  186.       topEdge  <- <primitive 182 2 1 2 private>.
  187.       ^ leftEdge @ topEdge
  188. |
  189.    getSubSize
  190.       width  <- <primitive 182 2 2 2 private>.
  191.       height <- <primitive 182 2 3 2 private>.
  192.       ^ width @ height
  193. |
  194.    setStartPoint: newPoint ! x y !
  195.       x <- newPoint x.
  196.       y <- newPoint y.
  197.       <primitive 182 3 0 x 2 private>.
  198.       <primitive 182 3 1 y 2 private>.
  199.       leftEdge <- x.
  200.       topEdge  <- y
  201. |
  202.    setSubSize: sizePoint ! w h ! 
  203.       w <- sizePoint x.
  204.       h <- sizePoint y.
  205.       <primitive 182 3 2 w 2 private>.
  206.       <primitive 182 3 3 h 2 private>.
  207.       width  <- w.
  208.       height <- h
  209. |
  210.    getFlags
  211.       ^ flags <- <primitive 182 2 4 2 private>
  212. |
  213.    setFlags: newFlags
  214.       <primitive 182 3 4 newFlags 2 private>.
  215.       flags <- newFlags
  216. |
  217.    getMutualExclude
  218.       ^ mutualExclude <- <primitive 182 2 5 2 private>
  219. |
  220.    setMutualExclude: newMutualExclude
  221.       <primitive 182 3 5 newMutualExclude 2 private>.
  222.       mutualExclude <- newMutualExclude
  223. |
  224.    getCommand
  225.       ^ command <- <primitive 182 2 6 2 private>
  226. |
  227.    setCommand: newCommand
  228.       <primitive 182 3 6 newCommand 2 private>.
  229.       command <- newCommand
  230. |
  231.    getNextItem
  232.       ^ nextItem <- <primitive 182 2 7 2 private>
  233. |
  234.    setNextItem: newNextItem
  235.       <primitive 182 3 7 newNextItem 2 private>.
  236.       nextItem <- newNextItem
  237. |
  238.    getItemFill
  239.       ^ itemFill <- <primitive 182 2 10 2 private>
  240. |
  241.    setItemFill: newItemFill
  242.       <primitive 182 3 10 newItemFill 2 private>.
  243.       itemFill <- newItemFill
  244. |
  245.    getSelectFill
  246.       ^ selectFill <- <primitive 182 2 11 2 private>
  247. |
  248.    setSelectFill: newSelectFill
  249.       <primitive 182 3 11 newSelectFill 2 private>.
  250.       selectFill <- newSelectFill
  251. |
  252.    new: newSubItemName
  253.       private     <- <primitive 182 1 2 newSubItemName>.
  254.       subItemName <- newSubItemName.
  255.       ^ self
  256. ]
  257.